/*
* @Author: Karry
* @Date:   2017-10-03 00:29:43
* @Last Modified by:   Karry
* @Last Modified time: 2017-11-09 22:05:58
*/

/*
* entry: js的入口文件
* externals：外部依赖的声明
* output：目标文件
* resolve：配置别名
* module：各种文件，各种loader
* plugins：插件
*/

var webpack           = require('webpack');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var HtmlWebpackPlugin = require('html-webpack-plugin');

//这里是环境变量的配置 dev / online
/*WEBPACK_ENV是自定义变量*/
var WEBPACK_ENV       = process.env.WEBPACK_ENV || 'dev';
console.log(WEBPACK_ENV);

//这是获取html-webpack-plugin参数的方法
var getHtmlConfig = function(name, title){
    return {
        template    :  './src/view/' + name + '.html',
        filename    :  'view/' + name + '.html',
        favicon     : './favicon.ico',
        title       :  title,
        inject      :  true,
        hash        :  true,
        chunks      :  ['common', name]
    };
};
//这是webpack config
var config = {
    entry: {
        'common'             : ['./src/page/common/index.js'],
        'index'              : ['./src/page/index/index.js'],
        'list'               : ['./src/page/list/index.js'],
        'detail'             : ['./src/page/detail/index.js'],
        'cart'               : ['./src/page/cart/index.js'],
        'order-confirm'      : ['./src/page/order-confirm/index.js'],
        'order-list'         : ['./src/page/order-list/index.js'],
        'order-detail'       : ['./src/page/order-detail/index.js'],
        'payment'            : ['./src/page/payment/index.js'],
        'user-login'         : ['./src/page/user-login/index.js'],
        'user-register'      : ['./src/page/user-register/index.js'],
        'user-pass-reset'    : ['./src/page/user-pass-reset/index.js'],
        'user-center'        : ['./src/page/user-center/index.js'],
        'about'              : ['./src/page/about/index.js'],
        'user-center-update' : ['./src/page/user-center-update/index.js'],
        'user-pass-update'   : ['./src/page/user-pass-update/index.js'],
        'result'             : ['./src/page/result/index.js'],
    },
    output: {
        path        : __dirname + '/dist/',
        publicPath  : '//s.baymaxmall.com/',
        filename    : 'js/[name].js'
    },
    externals: {
        'jquery' : 'window.jQuery'
    },
    module: {
        loaders: [
            { test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader","css-loader") },
            { test: /\.(gif|png|jpg|woff|svg|eot|ttf|woff2)\??.*$/, loader: 'url-loader?limit=50000&name=/resource/[name].[ext]' },
            { 
                test: /\.string$/, 
                loader: 'html-loader',
                query :{
                    minimize : true,
                    removeAttributeQuotes : false
                } 

            }
        ]
    },
    resolve : {
        alias : {
            node_modules    : __dirname + '/node_modules',
            util            : __dirname + '/src/util',
            page            : __dirname + '/src/page',
            service         : __dirname + '/src/service',
            image           : __dirname + '/src/image'
        }
    },
    plugins: [
        //独立通用模块到js/base.js
        new webpack.optimize.CommonsChunkPlugin({
            name : 'common',
            filename : 'js/base.js'
        }),
        //把css单独打包到文件里
        new ExtractTextPlugin("css/[name].css"),
        //html模板处理
        new HtmlWebpackPlugin(getHtmlConfig('index' , '首页')),
        new HtmlWebpackPlugin(getHtmlConfig('list' , '商品列表')),
        new HtmlWebpackPlugin(getHtmlConfig('detail' , '商品详情')),
        new HtmlWebpackPlugin(getHtmlConfig('cart' , '购物车')),
        new HtmlWebpackPlugin(getHtmlConfig('order-confirm', '订单确认')),
        new HtmlWebpackPlugin(getHtmlConfig('order-list', '订单列表')),
        new HtmlWebpackPlugin(getHtmlConfig('order-detail', '订单详情')),
        new HtmlWebpackPlugin(getHtmlConfig('payment', '订单支付')),
        new HtmlWebpackPlugin(getHtmlConfig('user-login' , '用户登录')),
        new HtmlWebpackPlugin(getHtmlConfig('user-register' , '用户注册')),
        new HtmlWebpackPlugin(getHtmlConfig('user-pass-reset' , '找回密码')),
        new HtmlWebpackPlugin(getHtmlConfig('user-center' , '个人中心')),
        new HtmlWebpackPlugin(getHtmlConfig('about' , '关于DBMALL')),
        new HtmlWebpackPlugin(getHtmlConfig('user-center-update' , '修改个人信息')),
        new HtmlWebpackPlugin(getHtmlConfig('user-pass-update' , '修改密码')),
        new HtmlWebpackPlugin(getHtmlConfig('result' , '操作结果')),
    ]
};
/*
if('dev' === WEBPACK_ENV){
    config.entry.common.push('webpack-dev-server/client?http://localhost:8080/');
}
*/
module.exports = config;